package la.iok.hzsvn.lewin.movie.service;

import la.iok.hzsvn.lewin.movie.core.Token;
import la.iok.hzsvn.lewin.movie.core.movieservice.param.NameParam;
import la.iok.hzsvn.lewin.movie.entity.MovieTag;
import la.iok.hzsvn.lewin.mybatis.service.BaseService;
import la.iok.hzsvn.share.annotations.NotNull;
import la.iok.hzsvn.share.annotations.Nullable;

public interface MovieTagService extends BaseService<MovieTag,Long> {
    /**
     * 保存标签
     * @param param 标签名称参数
     * @return 保存的记录id
     */
    Long save(@NotNull Token token, @NotNull NameParam param);

    /**
     * 验证权限并删除标签
     * @param token 操作用户
     * @param id 标签id
     */
    void delete(@NotNull Token token, @Nullable Long id);

    /**
     * 更新标签
     * @param id 标签id
     * @param param 标签名称参数
     */
    void update(@NotNull Token token, @Nullable Long id, @NotNull NameParam param);
}
